package io.gitee.devaper.starlight.common.util

/**
 * 这里存放正则表达式相关的工具
 */

import java.util.concurrent.ConcurrentHashMap
import java.util.regex.Pattern

private val patternCache = ConcurrentHashMap<String, Pattern>()

/**
 * 将字符串编译为Pattern对象, 支持缓存
 *
 * @param regex regex字符串
 * @param cache 使用缓存
 */
fun regex(regex: String, cache: Boolean = true): Pattern {
    if (cache) {
        return patternCache.getOrPut(regex) {
            Pattern.compile(regex)
        }
    }
    return Pattern.compile(regex)
}